package cn.bjit.service;

import cn.bjit.enums.ProductOrderPayTypeEnum;
import cn.bjit.model.OrderMessage;
import cn.bjit.request.ConfirmOrderRequest;
import cn.bjit.request.RepayOrderRequest;
import cn.bjit.util.JsonData;

import java.util.Map;

public interface ProductOrderService {
    //下单
    JsonData confirmOrder(ConfirmOrderRequest orderRequest);

    //查询订单状态
    String queryProductOrderState(String outTradeNo);

    /**
     * 队列监听，定时关单
     *
     * @param orderMessage
     * @return
     */
    boolean closeProductOrder(OrderMessage orderMessage);

    /**
     * 支付结果回调通知
     *
     * @param alipay
     * @param paramsMap
     * @return
     */
    JsonData handlerOrderCallbackMsg(ProductOrderPayTypeEnum alipay, Map<String, String> paramsMap);

    //分页查询我的订单列表
    Map<String, Object> page(int page, int size, String state);

    //重新支付订单
    JsonData repay(RepayOrderRequest repayOrderRequest);
}
